package com.tencreat.common.utils.uuid;

import cn.hutool.cache.Cache;
import cn.hutool.cache.CacheUtil;
import cn.hutool.core.util.RandomUtil;

import java.time.LocalDate;

/**
 * ID生成器工具类
 *
 * @Company: 深圳腾创互联科技有限公司
 * @link: https://tencreat.com/#/
 * @author tencreat
 */
public class IdUtils
{

    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUUID()
    {
        return UUID.randomUUID().toString().replaceAll("-", "").toLowerCase();
    }

    public static String generateGroupNumber()
    {
        return "PG"+LocalDate.now().toString().replaceAll("-", "");
    }


    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUUID()
    {
        return UUID.randomUUID().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUUID()
    {
        return UUID.fastUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUUID()
    {
        return UUID.fastUUID().toString(true);
    }

    public static Cache<Integer, Integer> idCache = CacheUtil.newFIFOCache(100);

    /**
     * 生成APP用户uuid
     * 生成规则 100000-999999随机数
     */
    public static int generateUUID() {
        int random = RandomUtil.randomInt(100000, 999999);
        return random;
    }

}
